package com.ruoyi.saas.service;

import com.ruoyi.saas.domain.CTenant;
import com.ruoyi.saas.dto.TenantConnectDTO;
import com.ruoyi.saas.enums.TenantStatusEnum;

import java.util.List;


/**
 * 租户信息Service接口
 * 
 * @author ruoyi
 * @date 2021-11-02
 */
public interface ICTenantService
{


    /**
     * 通知所有服务链接数据源
     *
     * @param tenantConnect 链接信息
     * @return 是否链接成功
     */
    Boolean connect(TenantConnectDTO tenantConnect);


    /**
     * 检测 租户编码是否存在
     *
     * @param tenantCode 租户编码
     * @return 是否存在
     */
    boolean check(String tenantCode);
    /**
     * 查询租户信息
     * 
     * @param id 租户信息ID
     * @return 租户信息
     */
    public CTenant selectCTenantById(Long id);

    /**
     * 查询租户信息列表
     * 
     * @param cTenant 租户信息
     * @return 租户信息集合
     */
    public List<CTenant> selectCTenantList(CTenant cTenant);

    /**
     * 新增租户信息
     * 
     * @param cTenant 租户信息
     * @return 结果
     */
    public int insertCTenant(CTenant cTenant);

    /**
     * 修改租户信息
     * 
     * @param cTenant 租户信息
     * @return 结果
     */
    public int updateCTenant(CTenant cTenant);

    /**
     * 批量删除租户信息
     * 
     * @param ids 需要删除的租户信息ID
     * @return 结果
     */
    public int deleteCTenantByIds(Long[] ids);

    /**
     * 删除租户信息信息
     * 
     * @param id 租户信息ID
     * @return 结果
     */
    public int deleteCTenantById(Long id);

    int updateStatus(List<Long> ids, TenantStatusEnum status);

    /**
     * 获取租户信息详细信息
     * @param tenantCode
     * @return
     */
    CTenant selectCTenantByTenantCode(String tenantCode);
}
